JavaScript가 처음 실행될 때 JavaScript Engine은 Global Execution Context를 만든다. 만들어지는 동안 다음 과정을 수행한다.
window 혹은 Node.js의 globalthis에 전역객체를 bind한다.undefined로 초기화한다.코드를 한줄 한줄 실행하며, 변수를 초기화하고 함수를 실행한다.
함수가 실행될 때마다 Function Execution Context가 생성된다.
Function Execution Context는 전역 객체 대신에 arguments 오브젝트를 생성한다.
arguments 오브젝트는 넘어온 인자에 대한 참조를 가지고있고, 실행 단계전에 모두 undefined로 초기화한다.
this의 binding도 이뤄진다. 자세한 내용은 [[JavaScript - this]]를 참조하자.
각 Execution Context를 관리하기 위해 Call Stack 자료 구조를 사용한다.